#include <bits/stdc++.h>
using namespace std;
// int diff=0;
// string func(string s)
// {
//     int hash[26]={0};
//     for(int i=0;i<s.size();i++)
//     {
//         hash[s[i]-'a']++;
//     }
//     sort(hash,hash+26);
//     int minn=0,maxn=0;
//     for(int x:hash)
//     {
//         if(x!=0)
//         {
//             minn=x;
//             break;
//         }
//     }
//     maxn=hash[25];
//     diff=maxn-minn;
//     if(diff==0||diff==1)return "No Answer";
//     if(diff==2)return "Lucky Word";
//     for(int i=3;i<sqrt(s.size());i++)
//     {
//         if(diff%2==0)return "No Answer";
//     }
//     return "Lucky Word";
// }
// int main()
// {
//     string s1;cin>>s1;
//     cout<<func(s1)<<endl;
//     cout<<(diff<=1?0:diff)<<endl;
//     return 0;
// }

// class Solution {
//     public:
//         bool hostschedule(vector<vector<int> >& schedule) {
//             sort(schedule.begin(),schedule.end());
//             for(int i=1;i<schedule.size();i++)
//             {
                
//                 if(schedule[i][0]<schedule[i-1][1])return false;
                
//             }
//             return true;
//         }
//     };


int n;
bool func(vector<int> ret,int sum)
{
    if(sum%2==1)return false;
    int target=sum/2;
    //dp[i][j]表示从前i-1个数中选出了能完成的数
    //当前数选 dp[i]+ret[i]<=target,dp[i][j]=dp[i-1][j-ret[i]]
    //不选 dp[i][j]=dp[i-1][j];
    vector<vector<bool>> dp(n+1,vector<bool>(target+1,0));
    dp[0][0]=1;
    for(int i=1;i<=n;i++)
    {
        for(int j=0;j<=target;j++)
        {
            dp[i][j]=dp[i-1][j];
            if(j>=ret[i])
                dp[i][j]=dp[i-1][j-ret[i]]||dp[i-1][j];
        }
    }
    return dp[n][target];
}
int main()
{
    cin>>n;    
    int sum=0;
    vector<int> ret(n+1,0);
    for(int i=1;i<=n;i++)
    {
        cin>>ret[i];
        sum+=ret[i];
    }
    if(func(ret,sum))cout<<"true"<<endl;
    else cout<<"false"<<endl;
    return 0;
}